Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

您所在的位置:网站首页 unity hdrp shader Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

2024-07-13 05:36| 来源: 网络整理| 查看: 265

HDRP和URP无法平滑切换,因为属性、功能差异巨大。 本脚本仅对可对应的默认脚本和属性做了转换处理。细节调整还需自己搞。 自动转换可以节省手动更换shader、texture、通用属性的劳动成本。

操作步骤 使用前确保当前项目中存在HDRP和URP的包,没有请到packge manager中下载将下方代码保存至Editor文件夹中,没有自己创建。 using System; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; class HDRP2URPConverter : MonoBehaviour { // 更新文件夹 public static string root; private static List m_textureResourceList; private static List m_shaderPairs; [MenuItem("转换管线/HDRP转URP")] static void HdrpToUrp() { ManualValidate(); WalkthroughMaterials(root, ReplaceToUrp, GetURPShader); } [MenuItem("转换管线/URP转HDRP")] static void UrpToHdrp() { ManualValidate(); WalkthroughMaterials(root, ReplaceToHDRP, GetHDRPShader); } private static string[] m_switchPropertiesList = new string[] { "_MainTex", "_BaseMap", "_BaseColorMap", "_BaseMap", "_NormalMap", "_BumpMap", "_AlphaCutoffEnabled", "_AlphaClip" }; private static string[] m_shaderNameList = new[] { "HDRP/Lit", "Universal Render Pipeline/Lit", "HDRP/Unlit", "Universal Render Pipeline/Unlit" }; [ContextMenu("初始化工具")] private static void ManualValidate() { // 更换texture m_textureResourceList = new List(); for (int i = 0; i HDRP转URP,然后等待处理结束即可 在这里插入图片描述处理好的模型都变粉嫩了。因为你当前是URP/HDRP管线,与转换后的材质不通。切换管线后就能正常看了。 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3